#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#define ERR_EXIT(m)\
do\
{\
    perror(m);\
    exit(EXIT_FAILURE);\
}while(0);
int main()
{
    umask(0);
    if(mkfifo("mypipe",0664)<0)
    {
        ERR_EXIT("mkfifo");
    }
    int rfd = open("mypipe",O_RDONLY);
    if(rfd<0)
    {
        ERR_EXIT("open");
    }
    char buf[1024];
    while(1)
    {
        buf[0]=0;
        printf("please wait...\n");
        ssize_t s = read(rfd,buf,sizeof(buf));
        if(s>0)
        {
            buf[s-1]=0;
            printf("client say#%s\n",buf);
        }
        else if(s==0)
        {
            printf("client quit,exit now!\n");
            exit(EXIT_SUCCESS);
        }
        else
        {
            ERR_EXIT("read");
        }
    }
    close(rfd);
    return 0;
}
